510. Тосты

 

Вы хотите поджарить несколько тостов для предстоящей вечеринки. Имеется сковорода, на которой может жариться одновременно k тостов. Поджаривание тоста с одной стороны занимает 2 минуты. Будем считать, что операции размещения тоста на сковороде, переворачивания и снятия тоста со сковороды выполняются мгновенно.

Напишите программу, вычисляющую минимальное время в минутах для поджаривания n тостов. Тосты нельзя снимать со сковороды раньше или позже 2 минут, необходимых для поджаривания одной стороны. Каждый тост нужно поджарить с обеих сторон.

 

Вход. В одной строке содержатся два целых числа n и k, разделенных пробелом (0 ≤ n ≤ 1000, 1 ≤ k ≤ 50) – количество тостов и вместимость сковороды.

 

Выход. Вывести минимальное время в минутах для поджаривания n тостов.

 

Пример входа

Пример выхода

3 2

6

 

 

РЕШЕНИЕ

элементарная задача

 

Анализ алгоритма

Если n  = 0, то ответ 0.

Если количество тостов n не больше вместимости сковороды k (n ≤ k), то на поджаривание уйдет 4 минуты.

Поскольку поджаривать тосты следует с обеих сторон, то всего прожарить следует  сторон тостов. Одна прожарка на сковороде занимает 2 минуты времени.Тогда при n > k количество минут, за которое можно поджарить n тостов, равно 2 * .

 

Пример

Пусть имеется n = 3 тоста, на сковородке помещается k = 2 тоста. Обозначим стороны тостов 1a, 1b, 2a, 2b, 3a, 3b.

Тогда пожарить все 6 сторон за 6 минут можно следующим образом:

·        Первая поджарка: 1a 2a – 2 минуты;

·        Вторая поджарка: 1b 3a – 2 минуты;

·        Третья поджарка: 2b 3b – 2 минуты;

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%d %d",&n,&k);

 

Если n  = 0, то ответ 0.

 

if (!n) res = 0; else

 

Если количество тостов не больше вместимости сковороды, то на поджаривание уйдет 4 минуты.

 

if (n <= k) res = 4; else

{

 

Поджаривать тосты следует с обеих сторон. Всего прожарить следует  сторон тостов. Следует также помнить, что одна прожарка занимает 2 минуты времени.

 

  res = 2 * n / k;

  if (2 * n % k) res++;

  res *= 2;

}

 

Выводим ответ.

 

printf("%d\n",res);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String []args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int k = con.nextInt();

    int res;

 

    if (n == 0) res = 0; else   

    if (n <= k) res = 4; else

    {

      res = 2 * n / k;

      if (2 * n % k > 0) res++;

      res *= 2;

    }       

    System.out.println(res);

    con.close();

  }

}